package com.wicket.okrapp.biz.service.dto.req;

import com.wicket.okrapp.biz.service.dto.common.CycleDto;
import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc ImplementOtherExecuteCycleStageHolidayProcessingComReqDto
 * @使用场景
 */
@Data
public class ImplementOtherExecuteCycleStageHolidayProcessingComReqDto
  extends BaseDto
  implements Serializable {

  @ApiModelProperty("周期列表")
  private List<CycleDto> cycleList = new ArrayList<>();

  /**
   * 节假日处理业务场景类型 FILLOUT_SENCE:填报场景 EVALUATE_SENCE:评价场景 FILLOUT_AND_EVALUATE_SENCE:填报评价场景
   */
  @NotNull(message = "节假日处理业务场景类型不能为空")
  @ApiModelProperty("节假日处理业务场景类型")
  private String holidayHandlingSenceType;

  /**
   * 计算开始起点还是结束终点 START_POINT:起点 END_POINT:终点
   */
  @NotNull(message = "计算开始起点还是结束终点不能为空")
  @ApiModelProperty("计算开始起点还是结束终点")
  private String calculateStartPointOrEndPoint;

  /**
   * 因节假日起始点要偏移 TRUE:是 FALSE:否
   */
  @NotNull(message = "因节假日起始点要偏移不能为空")
  @ApiModelProperty("因节假日起始点要偏移")
  private String isMoveBeginPoint;

  /**
   * 数值比较结果 BEFORE:之前 PRESENT:当前 LATER:之后
   */
  @NotNull(message = "数值比较结果不能为空")
  @ApiModelProperty("数值比较结果")
  private String numCompareResult;

  /**
   * 执行周期阶段ID
   */
  @NotNull(message = "执行周期阶段ID不能为空")
  @ApiModelProperty("执行周期阶段ID")
  private String executeCycleStageId;

  /**
   * 周期开始时间
   */
  @ApiModelProperty("上一个时间点周期开始时间")
  private Date cycleStartTime;

  /**
   * 周期结束时间
   */
  @ApiModelProperty("上一个时间点周期结束时间")
  private Date cycleEndTime;

  /**
   * 通用数值字段（整数型）
   */
  @NotNull(message = "接入四个时间点之一不能为空")
  @ApiModelProperty("接入四个时间点之一")
  private Long comNumField;

  /**
   * 通用数值字段1（整数型）
   */
  @ApiModelProperty("填报区间天数")
  private Long comNumField1;

  /**
   * 通用数值字段2（整数型）
   */
  @ApiModelProperty("评价区间天数")
  private Long comNumField2;

}
